//F7 编译

//C   标准库文件有 .h  扩展      C++没有

#include <iostream>//引用头文件用<>  符号代表这个头文件在电脑文件夹的路径告诉电脑搜索包含文件夹（软件包含路径），用""  代表此头文件在相对于当前文件的文件夹下的文件     
#include "head.h"//引入头文件就是编译时编译器将头文件里面的内容复制到这个程序文件里这个位置
void Log(const char* message);//申明函数,函数构造在source文件里
void static_function();


// char* 声明字符串类型  std::string(#include<string>)    const 常量关键字
// std::string name ="Chero";   name += "hello!";
// std::string = std::string("Chero")+"hello!"; 
//寻找字符串no 是否在 字符串里面   bool contains = name.find("no") != std::string::nops;
//strlen(name);     返回字符串的长度



//函数前面加关键字 static  内部函数   表示该函数只在当前文件可用不能链接之其他文件
//inline   将函数变为当有引用该函数时  将引用处变为该函数体
using namespace std;


#include "pointer.h"
#include "head2.h"
#include"Class.h"
#include"ENUM.h"
#include"Array.h"











int main() {
	int a;//int类型，4字节（32位  ——    二进制数。用一位来代表数字的正负，剩下的31位就有2的31次方种可能）变量类型（-20亿到+20亿）
	int b;
	cin >> a;
	
	cout << "输入的是" ;
	cout << a << endl;
	Log("nh");
	cout << chen_fa(1,3) << endl;  
	pointer();            //指针


	//类  Class.h
	//player.class_x = 1;
	class_move(player,3 ,3);
	player.class_move1(3 ,3);
	Player2 player2(2,3);
	player2.~Player2();
	//类，应用，日志打印系统
	//log_print.SetLoglevel(log_print.LogLevelError);
	log_print.Info("info");
	log_print.Warning("warning");
	log_print.Error("error");

	//结构体   struct.h
    #include"struct.h"
	E.struct_x = 3;

	MyStruct::struct_function();
	
	
	//static 局部变量   static_study.cpp
	static_function();
	static_function();
	static_function();
	
	//枚举   enum   ENUM.h
	enum_function(enum_B);
	enum_function(enum_A);

	//类的继承    Class.h
	inherit1.Inherit_function(3,5);

	//虚函数   Class.h

	Empty* e = new Empty();//将Empty类命名为e(实例化Empty类)
	PrintName(e);     //运行类Empty中的GetName()函数

	Empty1* p = new Empty1("覆写函数运行");
	PrintName(p);//运行类Empty1中的GetName()函数


	//纯虚函数 Class.h

	//数组  Array.h  字符串
	Log_string(string_example);

	//关键字mutable   Mutable.h


	//构造函数2  Class.h
	GG_function();


	


	return 0;
}